package cn.chenbonian;

import org.apache.commons.dbcp.BasicDataSource;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * DataBase Connection Pool
 * 为什么使用数据库连接池：
 * 如果没有数据库连接池，web服务器每次和数据交互都需要建立一个连接，使用完关闭连接，如果有1万次交互则会有1万次连接开启和关闭，频繁的开关连接，非常浪费资源，使用数据库连接池，可以设置初始连接数量和最大连接数量，
 * 每次和数据的交互都会从连接池中取连接用完后再次放回连接池中而不是断开连接，这样就可以起到连接重用的作用，避免了资源的浪费
 * 如何使用数据库连接池
 *
 * @author chbn
 * @create 2021-10-26
 */

public class DbcpTest {
    public static void main(String[] args) throws SQLException {
        BasicDataSource dataSource = new BasicDataSource();
        //设置数据库连接信息
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/tedu_study");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        //设置初始连接数量
        dataSource.setInitialSize(3);
        //设置最大连接数量
        dataSource.setMaxActive(5);
        
        //获取连接
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
    }
}
